package com.ruoyi.system.domain.xs;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * TB 订单表
 * @TableName xs_order
 */
@TableName(value ="xs_order")
@Data
public class XsOrder implements Serializable {

    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 内部订单id
     */
    private String orderId;

    /**
     * 外部订单唯一ID
     */
    private String acookieId;

    /**
     * 买家OpenUid
     */
    private String buyerOpenUid;

    /**
     * 客服编号
     */
    private String serviceCode;

    /**
     * 客服名称
     */
    private String serviceName;

    /**
     * 写手id
     */
    private Integer writerId;

    /**
     * 写手昵称
     */
    private String writerNickName;

    /**
     * 写手真实姓名
     */
    private String writerName;

    /**
     * 订单状态(1未派单，2进行中，3待验收，4已完成，5是否修改/申请退款，6结单，7写手结算)
     */
    private String status;

    /**
     * 商品标题
     */
    private String title;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额", suffix = "￥")
    private BigDecimal orderMoney;

    /**
     * 付款金额。精确到2位小数;单位:元。如:200.07，表示:200元7分
     */
    @Excel(name = "实付金额", suffix = "￥")
    private BigDecimal payment;

    /**
     * 付款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 交易结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 	交易修改时间(用户对订单的任何修改都会更新此字段)。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modified;

    /**
     * 实收价
     */
    @Excel(name = "实收价", suffix = "￥")
    private BigDecimal actualPayment;

    /**
     * 客单价
     */
    @Excel(name = "客单价", suffix = "￥")
    private BigDecimal putPayment;

    /**
     * 卖家备注内容
     */
    private String sellerMemo;

    /**
     * 账户
     */
    private String account;

    /**
     * 是否报账（1报，2未报，3结算）
     */
    private String checkSheet;

    /**
     * 结款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date settlementDate;

    /**
     * 结款备注
     */
    private String settlementRemark;

    /**
     * 图片/文档
     */
    private String picOrDic;

    /**
     * 绩效月份
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String performance;

    /**
     * 订单类型
     */
    private Long orderType;

    /**
     * 订单来源(1淘宝、2天猫、3微信、4抖音、5拼多多、6对公、7线下、8内部、9其他渠道)
     */
    private String orderSource;

    /**
     * 客户已付定价金额
     */
    private String clientPaidPrice;

    /**
     * 客服垫付金额
     */
    private String writerPaidPrice;

    /**
     * 写手已收金额
     */
    private String advanceAmount;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 备注
     */
    private String remark;

    /**
     * 订单排名
     */
    private String oRank;

    /**
     * 退款
     */
    private String refund;

    /**
     * 是否刷单
     */
    private String ifBrushing;

    /**
     * 店铺编号
     */
    private String storeCode;

    /**
     * 接单日期
     */
    private Date orderAcceptanceDate;


    /**
     * 线下退款金额
     */
    private BigDecimal offlineRefundAmount;

    /**
     * 付款截图
     */
    @TableField(value = "payment_screenshot")
    private String paymentScreenshot;


    /**
     * 重复结算数量
     */
    private Long repetitionCount;

    private String ifBalance;

    private String ifAudit;

    private String settle;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;


    //客服垫付图片
    private String paymentImg;
    /**
     * 写手已结图片
     */
    private String writerImg;

    //客服垫付金额审核 0 未审核 1审核
    private Long serviceAudit;
    //写手已结金额审核 0 未审核 1审核
    private  Long writerAudit;
    //线下退款金额审核 0 未审核 1审核
    private Long offlineAudit;

}
